/* 
 * File:   Polinomio.h
 * Author: jorgeorm
 *
 * Created on 6 de septiembre de 2011, 10:49 PM
 */

#ifndef POLINOMIO_H
#define	POLINOMIO_H

struct nodo_polinomio{
    long double coef; //coeficiente del polinomio
    int exp; //exponente del polinomio
    struct nodo_polinomio * signtTermino; //siguiente termino de un polinomio
};

typedef struct nodo_polinomio * POLY;

class Polinomio {
private:
    POLY ptr_primero;//puntero Primero
    POLY ptr_ultimo;//puntero Ultimo
public:
    Polinomio();
    void resetPolinomio();
    void crearPolinomio();//Se crea por consola
    void crearNodoPolinomio(long double co, int ex);
    Polinomio const_mult_poly(long double cte);//Multiplica constante por polinomio
    void imprimirPolinomio();//Imprimo poli
    Polinomio sumaPolinomio(Polinomio poly1, Polinomio poly2);//suma polinomio
    Polinomio monomioXPolinomio(long double coef, int exp, Polinomio poly);//monomio por poli
    Polinomio PolinomioXPolinomio(Polinomio poly1, Polinomio poly2);//polinomio por polinomio
    long double evaluarPolinomio(long double x_val);
    Polinomio derivadaPolinomio(Polinomio poly);//Saca la derivada de un polinomio
    
//    Polinomio(const Polinomio& orig);
    virtual ~Polinomio();
};

#endif	/* POLINOMIO_H */

